/**
 * Proyecto X Tecnologia de programacion  2do cuatrimestre de 2012
 * @author
 * German Rickert LU: 93284
 * Maximiliano Tiberi LU: 83600
 * Sebastian Larrieu LU: 94056
 */

package logica;


import entidades.Capcom;
import entidades.Marvel;
import entidades.Moneda;

import java.util.LinkedList;


public class Casillero {

	//Atributos de Instancia
	protected Marvel marvel;
	protected LinkedList<Capcom> capcoms;
	protected LinkedList<Moneda> monedas;	
	
	//Constructor
	public Casillero()
	{
		marvel=null;
		this.monedas = new LinkedList<Moneda>();
		this.capcoms = new LinkedList<Capcom>();
	}
		
	//Consultas
		
	/**
	 * @return marvel
	 */
	public Marvel getMarvel()
	{
		return marvel;
	}
		
	/**
	 * @return Coleccion de enemigos que estan en el casillero.
	 */
	public LinkedList<Capcom> getCapcom()
	{
		return this.capcoms;
	}
		
	/**
	 * @return Coleccion de monedas.
	 */
	public LinkedList<Moneda> getMoneda()
	{
		return this.monedas;
	}
		
	/**
	 * @return true si hay marvel en el casillero.
	 */
	public boolean hayMarvel()
	{
		return marvel!=null;
	}
		
	/**
	 * @return true si hay algun capcom en el casillero.
	 */
	public boolean hayCapcom()
	{
		return !this.capcoms.isEmpty();
	}
		
	/**
	 * @return true si hay monedas en el casillero.
	 */
	public boolean hayMoneda()
	{
		return !this.monedas.isEmpty();
	}
		
	//Comandos
	
	/**
	 * @param marvel en el casillero.
	 */
	public void setMarvel(Marvel m)
	{
		marvel = m;
	}
		
	/**
	 * @param marvel a eliminar.
	 */
	public void removerMarvel()
	{
		marvel = null;
	}
		
	/**
	 * @param Nuevo Capcom en el casillero.
	 */
	public void setCapcom(Capcom c)
	{
		this.capcoms.addFirst(c);
	}
		
	/**
	 * @param Capcom a eliminar.
	 */
	public void removerCapcom(Capcom c)
	{
		this.capcoms.remove(c);
	}
		
	/**
	 * @param nueva moneda
	 */
	public void setMoneda(Moneda m)
	{
		this.monedas.addLast(m);
	}
		
	/**
	 * @param Moneda a eliminar.
	 */
	public void removerMoneda(Moneda m)
	{
		this.monedas.remove(m);
	}
}
